1. Field of the Invention
The present invention relates to a networking system and method and more particularly to a networking system including a gateway utilizing remote direct memory access controls for separating data path from control path when reading and writing data.
2. Description of Related Art
Various networking systems are currently available, many of which are combined to create larger integrated systems. Many networking systems use differing communication methods and protocols. For example, Ethernet is an industry standard, highly scalable, high performance interconnection fabric, which may be used to connect together a large number of nodes performing a variety of functions. One such function is as a scalable data storage server that accepts data storage commands from storage clients and performs a variety of transforms on such commands and subsequently issues derived data storage commands to storage devices such as disk drives.
The interface used to request block storage services for most networks is the Small Computer Systems Interface, or SCSI. SCSI is a client-server architecture and a SCSI transport maps the client-server SCSI protocol to a specific interconnect. One such SCSI transport is Internet SCSI, or iSCSI. iSCSI is a mapping of the SCSI remote procedure call over the Transmission Control Protocol (TCP).
The SCSI layer builds and receives SCSI CDBs (Command Descriptor Blocks) and passes/receives them and their parameters to/from the iSCSI layer. The iSCSI layer builds/receives iSCSI PDUs (Protocol Data Unit) and relays them to/from one or more TCP connections. One or more TCP connections that link an initiator with a target form a session. Connections within a session are identified by a CID (connection ID). Sessions are identified by the SID (session ID). For any iSCSI request issued over a TCP connection, the corresponding response and/or other PDUs must be sent over the same connection. This is called command connection allegiance. Thus, if an initiator sends a READ command, the target must send the requested data and the status to the initiator over the same TCP connection that was used to deliver the SCSI command.
iSCSI Extensions for RDMA (iSER) provides a Remote Direct Memory Access (“RDMA”) capability to iSCSI by layering iSCSI on top of Remote Direct Memory Access Protocol (RDMAP). RDMAP permits data to be transferred directly in and out of buffers without intermediate data copy operations.
The interconnection between a storage client or storage device and a storage server system, such as an Ethernet network, may be of a different type of interconnection fabric. For example, storage client networks, as well as storage device networks, may be made up of a Fiber Channel interconnection fabric. Various standard protocols do not provide effective connectivity from one interconnection fabric, such as a Fiber Channel based client or storage device, to a storage server constructed of another interconnection fabric, such as Ethernet.
Furthermore, communications within standard protocols, whether they include data or commands, are transferred via the same channel. For example, InfiniBand networks might use SCSI over RDMA Protocol (“SRP”) and RDMA channels to transfer SCSI commands and data blocks. According to the industry standard SRP definition, an SRP command, its corresponding RDMA operations, and the corresponding SRP response, must all be transferred via the same RDMA channel. This is the same restriction placed on iSCSI over Ethernet networks. Thus, translation capabilities between interconnection fabrics and the protocols used in handling the communications between various systems limit the functional capabilities of each system, as well as a system designer's ability to efficiently scale a network, develop performance enhancements or other system efficiencies.
These and other deficiencies exist in current networked data storage server systems. Therefore, a solution to these and other problems is needed to provide a data storage server system capable of transmitting data information and command information over separate data paths to separate nodes.